DOSEXTERR

#include <dos.h>
            
int dosexterr(buffer);
struct DOSERROR *buffer;

Описание.
Функция dosexterr получает значение регистра, возвращаемого системным вызовом MS DOS 59H , и записывает это значение в структуру, на которую указывает buffer . Эта функция полезна, когда системные вызовы вырабатываются в версиях MS DOS 3.0 и старших и которые предлагают расширенную обработку ошибок. Более подробно системные вызовы MS DOS описаны в руководстве "Microsoft MS DOS Programmer's Reference Manual" .
Тип структуры DOSERROR объявлен в <dos.h> и представляет следующее:

            
            struct DOSERROR {
                   int exterror;
                   char class;
                   char action;
                   char locus;
                   };

Аргумент NULL -указателя посредством dosexterr определяет в AX возвращаемое значение.

Возвращаемое значение.
Функция dosexterr возвращает значение в регистр AX (идентично значению в поле структуры exterror ).

Пример:

            
            #include <dos.h>
            #include <fcntl.h>
            #include <stdio.h>
            
            struct DOSERROR doserror;
            int fd;
            
            if ((fd=open("test.dat",O_RDONLY))==-1 {
               dosexterr(&doserror);
               printf("error=%d,class=%d,action=%d,locus=%d\n",
                       doserror.exterror, doserror.class,
                       doserror.action, doserror.locus);
               }
Hosted by uCoz